Was hier liegt, und warum es zweimal existiert
==============================================

NeuridionPaperTwin.txt  — wortgleiche Kopie von Core/Models/NeuridionPaper.swift
PaperPainterTwin.txt    — wortgleiche Kopie von Core/Preview/PaperPainter.swift

Eine exportierte App muss ein entworfenes Blatt drucken können. Der Maler ist
750 Zeilen Core Graphics; ihn als String-Literal in den Generator zu schreiben
wäre der Weg, den dieses Haus sonst geht — und genau die Stelle, an der ein
Zwilling still auseinanderläuft: ein Steg zwischen zwei Spalten hier repariert
und dort nicht, und niemand merkt es, weil beides kompiliert.

Also gibt es keinen zweiten Maler. Es gibt eine Kopie, sie liegt im Bundle
(jede Datei in diesem Ordner wird von Xcode automatisch als Ressource
mitgenommen), und der Generator schreibt sie unverändert in das exportierte
Projekt. Dass die Kopie die Kopie ist, prüft ExportTwinTests bei jedem Lauf.

Wenn der Test rot ist, ist die Kopie alt. Das ist die Reparatur:

    cp Core/Models/NeuridionPaper.swift "Neuridion Mobile/Export/NeuridionPaperTwin.txt"
    cp Core/Preview/PaperPainter.swift  "Neuridion Mobile/Export/PaperPainterTwin.txt"

Was die Kopien an Namen von außen brauchen — ColumnValue.display,
DatabaseColumn.ColumnType, Formula, DataLimits, AppArea.palette — liefert
SheetBridge.swift im Export, sechzig Zeilen. Deshalb steht in
Core/Models/NeuridionPaper.swift nichts mehr über ActionRule, NScreen oder
DatabaseSchema: das ist nach Core/Models/PaperScope.swift ausgezogen, damit die
Modelldatei kopierbar bleibt.
